BookML: to html, made easy(ish).
Powered by .

Vincenzo Mantova

5th September 2026

Abstract

BookML is a fully automated solution for the production of accessible html content straight from , based on for the widest compatibility and bookdown for a modern and accessible look. Integration with Overleaf is provided via a GitHub action. Outputs are also packaged as SCORM for ease of use in higher education. Created by and maintained for maths lecturers at the University of Leeds.

Downloads and sources available on GitHub.
Latest release Download stats Stargazers on GitHub

Formats: GitBook (html), plain with Latin Modern (html), PDF, source.

For Leeds-specific instructions see the Leeds BookML guide.

BookML is a small package to help you convert documents into accessible html very similar to the one produced by bookdown. The conversion is done by , which understands a wide collection of packages and can deal with all sorts weird constructs. To see plain(ish) in action, just open any arXiv html preprint. For examples of BookML documents, see:

BookML key features are:

  • simple installation: simply drop the bookml/ directory next to the files to be compiled and copy GNUmakefile in the same place (well, uhm, that is a bit of a lie: you need to install first! see Getting started on your device);

  • Overleaf and GitHub integration: BookML can be used with Overleaf by adding a single file to your project or using the BookML template, and linking it to GitHub (which requires a paid Overleaf subscription), or by directly putting your files on GitHub (no subscription required);

  • accessible and mobile friendly output: virtually identical to the GitBook style of bookdown, including font selection and dark mode, tweaked to meet the Web Content Accessibility Guidelines 2.1 level AA;

  • fully automated (re-)compilation based on which files have changed on disk, powered by GNU Make: just run make to zip together all PDF and HTML outputs from all the main .tex files in the directory (one package per main .tex file);

  • high quality conversion of external EPS and PDF figures to SVG via mutool, pdftocairo, Inkscape or dvisvgm, rather than ImageMagick used by LaTeXML;

  • transparent generation of SVG images from TikZ pictures, animate animations, XY-matrices, and virtually any other picture-like environment: just add a few lines of code in the preamble

    \bmlImageEnvironment{tikzpicture,animate}
    \iflatexml\else % prevent LaTeXML from even trying to load TikZ
    \usepackage{tikz}
    \usepackage{animate}
    \fi
  • alternative text for images straight from :

    \usepackage{bookml/bookml}\bmlImageEnvironment{tikzpicture}
  • arbitrary html content in , such as collapsible tags:

    \usepackage{bookml/bookml}
    ...
    \<details>
    \<summary>\textbf{Solution.}\</summary>
    To create a collapsible `proof' environment, ...
    \</details>
  • declare alternative PDF versions (for instance sans serif, large print):

    \bmlAltFormat{notes-large-print.pdf}{PDF (large print)}
    % you must provide notes-large-print.tex

    the files will be automatically compiled and included in the ‘Download’ menu of bookdown (see the example for more info)

  • SCORM support: running make creates valid SCORM.*.zip packages supported by most Learning Management Systems (if not, please submit an issue!).